﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.IO;
using Modellayer;
using System.Threading;
using System.Globalization;

namespace BioBookWcf
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IBioBookService" in both code and config file together.
    [ServiceContract]
    public interface IBioBookService
    {
        [OperationContract]
        void createEmployee(int phoneNumber, string email, string name, string password, string loginId);

        [OperationContract]
        void createCustomer(int phoneNumber, string email, string name, string password);

        [OperationContract]
        Person findPerson(int phoneNumber);
        
        [OperationContract]
        void createShow(Movie movie, ShowRoom showroom, int showId, string sTime);

        [OperationContract]
        Show findShow(int showId);

        [OperationContract]
        void createMovie(string Title, string Movielength, string MovieDescription);

        [OperationContract]
        Movie findMovie(string Title);

        [OperationContract]
        void createShowRoom(int showRoomNumber, int numberOfSeats, string showRoomDescription);

        [OperationContract]
        ShowRoom findShowRoom(int showRoomNumber);

        [OperationContract]
        ShowRoom updateShowRoom(int showRoomNumber, int numberOfSeats, string showRoomDescription);
        
        [OperationContract]
        void createReservation(Person p, Show show, List<Seat> seats, int reservationsID);

        [OperationContract]
        void deleteReservation(int reservationsID);

        [OperationContract]
        List<Person> findAllPerson();

        [OperationContract]
        List<Reservation> findAllReservations();

        [OperationContract]
        List<Show> findAllShows();

        [OperationContract]
        List<Movie> findAllMovie();

        [OperationContract]
        List<ShowRoom> findAllShowRooms();

        [OperationContract]
        Show updateShow(Show show);
    }   


}
